/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package be.ugent.medirem.persistence.facade;

import be.ugent.medirem.persistence.entity.details.PrescriptionDetails;
import be.ugent.medirem.persistence.entity.values.PrescriptionValues;
import be.ugent.medirem.persistence.exception.EntityNotFoundException;
import java.util.List;
import javax.ejb.Local;


/**
 *
 * @author Thomas Roelens
 */
@Local
public interface PrescriptionDaoLocal {

    /**
     * Basic prescription actions
     */

    Long create(PrescriptionValues prescription) throws IllegalArgumentException;

    void remove(Long id) throws EntityNotFoundException, IllegalArgumentException;

    PrescriptionDetails getDetails(Long prescriptionId) throws EntityNotFoundException, IllegalArgumentException;

    void update(Long prescriptionId, PrescriptionValues prescription) throws EntityNotFoundException, IllegalArgumentException;
    
    /**
     * Patient - medication task relation and medication task actions
     */

    /**
     * Patient - prescription relation
     */
    void addPrescription(Long patientId, Long prescriptionId);

    List<PrescriptionDetails> getPrescriptions(Long patientId);

    void removePrescriptionFromPatient(Long patientId, Long prescriptionId);
}
